home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: delta
/
whiteline CD Series - delta.iso
/
tex
/
style
/
misc
/
tugboat.com
< prev
next >
Wrap
Text File
|
1995-11-25
|
16KB
|
470 lines
% ***** TUGBOT.COM ***** 17 Jun 89
%
% This file contains macros which are common to both the PLAIN
% and LaTeX style files for TUGboat.
% Among other things, it contains supplementary definitions for
% abbreviations and logos that appear in TUGboat.
% helpful shorthand
\def\makeescape#1{\catcode`#1=0 }
\def\makebgroup#1{\catcode`#1=1 }
\def\makeegroup#1{\catcode`#1=2 }
\def\makemath#1{\catcode`#1=3 }
\def\makealign#1{\catcode`#1=4 }
\def\makeeol#1{\catcode`#1=5 }
\def\makeparm#1{\catcode`#1=6 }
\def\makesup#1{\catcode`#1=7 }
\def\makesub#1{\catcode`#1=8 }
\def\makeignore#1{\catcode`#1=9 }
\def\makespace#1{\catcode`#1=10 }
\def\makeletter#1{\catcode`#1=11 }
\def\makeother#1{\catcode`#1=12 }
\def\makeactive#1{\catcode`#1=13 }
\def\makecomment#1{\catcode`#1=14 }
\def\makeatletter{\catcode`\@=11 }
\chardef\other=12
\def\makeatother{\catcode`\@=\other}
\def\savecat#1{%
\expandafter\xdef\csname\string#1savedcat\endcsname{\the\catcode`#1}}
\def\restorecat#1{\catcode`#1=\csname\string#1savedcat\endcsname}
\savecat\@
\makeletter\@ % used, as in PLAIN, in protected control sequences
% for restoring meanings of global control sequences
\def\SaveCS#1{%
\def\scratch{\expandafter\let\csname saved@@#1\endcsname}%
\expandafter\scratch\csname#1\endcsname}
\def\RestoreCS#1{%
\def\scratch{\expandafter\let\csname#1\endcsname}%
\expandafter\scratch\csname saved@@#1\endcsname}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% ***** abbreviations and logos ***** %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def \AMS{American Mathematical Society}
\def\AmSTeX{{\the\textfont2 A}\kern-.1667em\lower.5ex\hbox
{\the\textfont2 M}\kern-.125em{\the\textfont2 S}-\TeX}
\def\aw{A\kern.1em-W}
\def\AW{Addison\kern.1em-\penalty0\hskip0pt Wesley}
\def \BibTeX{{\rm B\kern-.05em{\smc i\kern-.025emb}\kern-.08em\TeX}}
\def \CandT{{\sl Computers \& Typesetting}}
\def\DVItoVDU{DVIto\kern-.12em VDU}
% Japanese TeX
\def\JTeX{\leavevmode\hbox{\lower.5ex\hbox{J}\kern-.18em\TeX}}
\def \JoT{{\sl The Joy of \TeX}}
% note -- \LaTeX definition is from LATEX.TEX 2.09 of 7 Jan 86,
% adapted for additional flexibility in TUGboat
%\def \LaTeX{\TestCount=\the\fam \leavevmode L\raise.42ex
% \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}\kern-.15em\TeX}
% note -- broken in two parts, to permit separate use of La,
% as in (La)TeX
\def \La{\TestCount=\the\fam \leavevmode L\raise.42ex
\hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}}
\def \LaTeX{\La\kern-.15em\TeX}
% Note -- The `official' \MF uses \font\manual=manfnt, which,
% although it is now in general distribution, may not be
% available to all users.
\font\manual=manfnt % font used for the METAFONT logo, etc.
%\font\manual=nwmanfnt % to avoid problems while old manfnt is preloaded
% for Robert McGaffey
\def\Mc{\setbox\TestBox=\hbox{M}M\vbox to\ht\TestBox{\hbox{c}\vfil}}
\def \MF{{\manual META}\-{\manual FONT}}
\def \mf{{\smc Metafont}}
\def \MFB{{\sl The \slMF book}}
% multilingual (INRS) TeX
\def \mtex{T\kern-.1667em\lower.5ex\hbox{\^E}\kern-.125emX}
\def \pcMF{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}MF}
\def \PCTeX{PC\thinspace\TeX}
\def \pcTeX{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}\TeX}
\def \Pas{Pascal}
\def \PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC}
\def \PiCTeX{\PiC\kern-.11em\TeX}
\def\plain{{\tt plain}}
\def \POBox{P.\thinspace O.~Box }
\def \POBoxTUG{\POBox\unskip~9506, Providence, RI~02940}
\def \PS{{Post\-Script}}
\def \SC{Steering Committee}
\def \SliTeX{{\rm S\kern-.06em{\smc l\kern-.035emi}\kern-.06em\TeX}}
\def \slMF{{\manual 89:;}\-{\manual <=>:}} % slant the logo
% Atari ST (Klaus Guntermann)
\def\stTeX{{\smc st\rm\kern-0.13em\TeX}}
\def\TANGLE{{\tt TANGLE}}
\def \TB{{\sl The \TeX book}}
\def \TeX{\leavevmode\hbox{T\kern-.1667em\lower.424ex\hbox{E}\kern-.125emX}}
\def\TeXhax{{\tt \TeX hax}}
% Don Hosek
\def\TeXMaG{\TeX M\kern-.1667em\lower.5ex\hbox{A}\kern-.2267emG}
%\def\TeXtures{\TestCount=\the\fam
% \TeX\-\hbox{$\fam\TestCount\scriptstyle TURES$}}
\def\TeXtures{{\it Textures}}
\def \TeXXeT{\TeX--X\kern-.125em\lower.5ex\hbox{E}\kern-.1667emT}
\def\tubfont{\sl} % redefined in other situations
\def \TUB{{\tubfont TUGboat\/}}
\def \TUG{\TeX\ \UG}
\def \UG{Users Group}
\def \UNIX{{\smc unix}}
\def \VAX{\leavevmode\hbox{V\kern-.12em A\kern-.1em X}}
\def \VorTeX{V\kern-2.7pt\lower.5ex\hbox{O\kern-1.4pt R}\kern-2.6pt\TeX}
\def \XeT{\leavevmode\hbox{X\kern-.125em\lower.424ex\hbox{E}\kern-.1667emT}}
\def \WEB{{\tt WEB}}
\def \WEAVE{{\tt WEAVE}}
%********************************************************************
\clubpenalty=10000
\widowpenalty=10000
\newdimen\TUBparindent \TUBparindent=20pt
\def \BlackBoxes{\overfullrule=5pt }
\def \NoBlackBoxes{\overfullrule=0pt }
\def \newline{\hskip0pt plus \pagewd \break}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% ***** utility registers and definitions ***** %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% test registers for transient use; paired - internal/external
\newbox\T@stBox \newbox\TestBox
\newcount\T@stCount \newcount\TestCount
\newdimen\T@stDimen \newdimen\TestDimen
\newif\ifT@stIf \newif\ifTestIf
% \cs existence test, stolen from TeXbook exercise 7.7
\def \ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax }
% Smashes repeated from AMS-TeX; PLAIN implements only full \smash .
\newif\iftop@ \newif\ifbot@
\def\topsmash{\top@true\bot@false\smash@}
\def\botsmash{\top@false\bot@true\smash@}
\def\smash{\top@true\bot@true\smash@}
\def\smash@{\relax\ifmmode\def\next{\mathpalette\mathsm@sh}%
\else\let\next\makesm@sh\fi \next }
\def\finsm@sh{\iftop@\ht\z@\z@\fi\ifbot@\dp\z@\z@\fi\box\z@}
% Vertical `laps'; cf. \llap and \rlap
\long\def\ulap#1{\vbox to \z@{\vss#1}}
\long\def\dlap#1{\vbox to \z@{#1\vss}}
% And centered horizontal and vertical `laps'
\def\xlap#1{\hbox to \z@{\hss#1\hss}}
\long\def\ylap#1{\vbox to \z@{\vss#1\vss}}
\long\def\zlap#1{\ylap{\xlap{#1}}}
% Avoid unwanted vertical glue when making up pages.
\def \basezero{\baselineskip\z@ \lineskip\z@}
% Support ad-hoc strut construction.
\def \makestrut[#1;#2]{\vrule height#1 depth#2 width\z@ }
% Today's date, to be printed on drafts. Based on TeXbook, p.406.
\def\today{\number\day\space \ifcase\month\or
Jan \or Feb \or Mar \or Apr \or May \or Jun \or
Jul \or Aug \or Sep \or Oct \or Nov \or Dec \fi
\number\year}
% Current time; this may be system dependent!
\newcount\hours
\newcount\minutes
\def \SetTime{\hours=\time
\global\divide\hours by 60
\minutes=\hours
\multiply\minutes by 60
\advance\minutes by-\time
\global\multiply\minutes by-1 }
\SetTime
\def \now{\number\hours:\ifnum\minutes<10 0\fi\number\minutes}
\def \Now{\today\ \now}
\newif\ifPrelimDraft \PrelimDraftfalse
\def \midrtitle{\ifPrelimDraft {{\tensl preliminary draft, \Now}}\fi}
% Registration marks
\def \HorzR@gisterRule{\vrule height 0.2pt depth 0pt width 0.5in }
\def \DownShortR@gisterRule{\vrule height 0.2pt depth 1pc width 0.2pt }
\def \UpShortR@gisterRule{\vrule height 1pc depth 0pt width 0.2pt }
% ``T'' marks centered on top and bottom edges of paper
\def \ttopregister{\dlap{%
\hbox to \trimwd{\HorzR@gisterRule \hfil \HorzR@gisterRule
\HorzR@gisterRule \hfil \HorzR@gisterRule}%
\hbox to \trimwd{\hfil \DownShortR@gisterRule \hfil}}}
\def \tbotregister{\ulap{%
\hbox to \trimwd{\hfil \UpShortR@gisterRule \hfil}%
\hbox to \trimwd{\HorzR@gisterRule \hfil \HorzR@gisterRule
\HorzR@gisterRule \hfil \HorzR@gisterRule}}}
\def \topregister{\ttopregister}
\def \botregister{\tbotregister}
% PLAIN's definition of \raggedright doesn't permit any stretch, and
% results in too many overfull boxes. Change.
\newdimen\raggedskip \raggedskip=\z@
\newdimen\raggedstretch \raggedstretch=5em
\newskip\raggedparfill \raggedparfill=\z@ plus 1fil
\def \raggedspaces{\spaceskip=.3333em \xspaceskip=.5em }
% Some applications may have to add stretch, in order to avoid
% all overfull boxes.
\def \raggedright{\rightskip=\raggedskip plus\raggedstretch \raggedspaces
\parfillskip=\raggedparfill }
\def \raggedleft{\leftskip=\raggedskip plus\raggedstretch \raggedspaces
\parfillskip=\z@ }
\def \raggedcenter{\leftskip=\raggedskip plus\raggedstretch
\rightskip=\leftskip \raggedspaces
\parindent=\z@ \parfillskip=\z@ }
\def \normalspaces{\spaceskip=.3333em plus.1667em minus.1111em
\xspaceskip=.4444em plus.5em minus.037em }
% Miscellaneous useful stuff
\def \bull{\vrule height 1ex width .8ex depth -.2ex } % square bullet
\def \cents{{\rm\raise.2ex\rlap{\kern.05em$\scriptstyle/$}c}}
\def \careof{\leavevmode\hbox{\raise.75ex\hbox{c}\kern-.15em
/\kern-.125em\smash{\lower.3ex\hbox{o}}} \ignorespaces}
\def \sfrac#1/#2{\leavevmode\kern.1em
\raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
/\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}
\def \d@sh#1{\nobreak\thinspace#1\penalty0\thinspace}
\def \dash{\d@sh{--}}
\def \Dash{\d@sh{---}}
% Hack to permit automatic hyphenation after an actual hyphen.
\def \hyph{-\penalty0\hskip0pt\relax }
\def \slash{/\penalty0\hskip0pt} % "breakable" slash
% Dates and other items which identify the volume and issue
% To use: \vol 5, 2.
% \issdate October 1984.
% \issueseqno=10
% For production, these are set in a separate file, TUGBOT.DATES,
% which is issue-specific.
\newcount\issueseqno \issueseqno=-1
\def \v@lx{\gdef\volx{Volume~\volno~(\volyr), No.~\issno}}
\def \volyr{}
\def \volno{}
\def \vol #1,#2.{\gdef\volno{#1\unskip}%
\gdef\issno{\ignorespaces#2\unskip}%
\setbox\TestBox=\hbox{\volyr}%
\ifdim \wd\TestBox > .2em \v@lx \fi }
\def \issdate #1#2 #3.{\gdef\issdt{#1#2 #3}\gdef\volyr{#3}%
\gdef\bigissdt{#1{\smc\uppercase{#2}} #3}%
\setbox\TestBox=\hbox{\volno}%
\ifdim \wd\TestBox > .2em \v@lx \fi }
\vol 0, 0. % volume, issue.
\issueseqno=0 % sequential issue number
\issdate Thermidor, 2001. % month, year of publication
\font\tenupit=cmu10 % unslanted italic
\def \xEdNote{{\tenupit Editor's note:\enspace }}
% dates associated with errata and bug lists
% [TEX,DEK]
% ERRATA TEX 8.5 20-Feb-89 0938
\def \errdate{20 February 1989}
% TEX82 BUG 35.2 23-Jan-89 2229
\def \TeXbugdate{23 January 89}
\def \TeXverno{2.97}
% [MF,DEK]
% MF84 BUG 14.0 14-Dec-88 2233
\def \MFbugdate{14 December 1988}
\def \MFverno{1.7}
% [CM,DEK]
% CM85 BUG 8.4 23-Jan-89 2157
\def \CMbugdate{23 January 1989}
\def \memlistdate{July~1989} % membership list running head date
\def \MemListDate{15~June~1989} % membership list closing date
\def \FullMemListDate{3~March~1989}
\def \PrevMemListDate{3~March~1989}
\def \IsThisSupplement{\Supplementtrue}
\def \mtgdate{August 1989} % date of meeting when list distributed
\def \memformyear{1989} % year for membership form
\def \revdate{10/88} % revision date for bottom of forms
\def \distriblines{{\centerline{Distributed with \TUB\ \volx.\ \ Published by}%
\nobreak
\vskip 4pt
\baselineskip=13pt
\interlinepenalty=10000
\halign{\hbox to \hsize{\hfil##\hfil}\cr
\bf\TUG\cr
\POBox 9506\cr
Providence, R.I.\ 02940-9506, \USA\cr}}}
% TUGboat conventions include the issue number in the file name.
% Permit this to be incorporated into file names automatically.
% If issue number = 11, \Input filnam will read tb11filnam.tex.
\def \Input #1 {\ifnum\issueseqno<0 \def\infil@{#1}%
\else \def\infil@{tb\number\issueseqno#1}\fi
\input \infil@
\ifRMKopen\immediate\closeout\TBremarkfile\RMKopenfalse\fi}
\newif\ifRMKopen \RMKopenfalse
\newwrite\TBremarkfile
\def\TBremarkON#1{%
\ifRMKopen\else\RMKopentrue\immediate\openout\TBremarkfile=\infil@.rmk \fi
\toks@={#1}%
\immediate\write\TBremarkfile{^^J\the\toks@}%
\immediate\write16{^^JTBremark:: \the\toks@^^J}}
\def\TBremarkOFF#1{}
\let\TBremark=\TBremarkOFF
% Write out (both to a file and to the log) the starting page number
% of an article, to be used for cross references and in contents.
% \pagexref is used for articles fully processed in the TUGboat run.
% \PageXref is used for "extra" pages, where an item is submitted
% as camera copy, and only running heads (at most) are run.
\def \pagexrefON#1{\ifFirstPar \nobreak \fi % don't clobber switch by accident
\write-1{\def\expandafter\noexpand\csname#1\endcsname{\number\pageno}}%
\write\ppoutfile{%
\def\expandafter\noexpand\csname#1\endcsname{\number\pageno}}%
\ifFirstPar \nobreak \fi } % and don't allow page break
\def \PageXrefON#1{%
\immediate\write-1{\def\expandafter
\noexpand\csname#1\endcsname{\number\pageno}}%
\immediate\write\ppoutfile{\def\expandafter
\noexpand\csname#1\endcsname{\number\pageno}}}
\def\pagexrefOFF#1{}
\let\pagexref=\pagexrefOFF
\def\PageXrefOFF#1{}
\let\PageXref=\PageXrefOFF
\def\xreftoON#1{%
\ifundefined{#1}%
???\TBremark{Need cross reference for #1.}%
\else\csname#1\endcsname\fi}
\def\xreftoOFF#1{???}
\let\xrefto=\xreftoOFF
% For uppercasing title and author; from AMSPPT.STY, version 0
\def\uctext@#1{\uppercase@#1\gdef\uppercase@@{}$\m@th$}
\def\uppercase@#1$#2${\gdef\uppercase@@{\uppercase@}\uppercase
{#1}${#2}$\uppercase@@}
{\makeactive\@
\gdef\signatureat{\makeactive\@\def@{\char"40\discretionary{}{}{}}}
\makeactive\%
\gdef\signaturepercent{\makeactive\%\def%{\char"25\discretionary{}{}{}}}
}
\def\signature{\bgroup\makeactive\@\makeactive\%\@readsignature}
\def\signaturemark{\leavevmode\llap{$\diamond$\enspace}}
\def\makesignature{%
\par
\rightline{%
\vbox{\hsize=12pc \ninepoint \raggedright
\parindent \z@ \everypar={\global\hangindent 1pc }
\parskip \z@
\def\\{\endgraf} \def\net{\tt\signatureat\signaturepercent}
\def\phone{\rm Phone: } \rm
\the\@signature}}
}
\def \Dag{\raise .6ex\hbox{$\scriptstyle\dagger$}}
% some hyphenation exceptions:
\hyphenation{man-u-script man-u-scripts}
\restorecat\@
\endinput